Fix cursor motion across display strings covering reordered text.
authorEli Zaretskii <eliz@gnu.org>
Sat, 28 May 2011 17:23:44 +0000 (20:23 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 28 May 2011 17:23:44 +0000 (20:23 +0300)
commit0b0aa6363dc87feb2230dce571cd95e686c981ef
treeda8728e4df2914932891737e39ea7cadffc0fe39
parent2b761489c6d553cf04bf8f6cbfed3eb5bf9f3337
Fix cursor motion across display strings covering reordered text.

 src/xdisp.c (set_cursor_from_row): Set start and stop points
 according to the row's direction when priming the loop that looks
 for the glyph on which to display cursor.
 (single_display_spec_intangible_p): Function deleted.
 (display_prop_intangible_p): Reimplement to call
 handle_display_spec instead of single_display_spec_intangible_p.
 Accept 3 additional arguments needed by handle_display_spec.  This
 fixes incorrect cursor motion across display property with complex
 values: lists, `(when COND...)' forms, etc.
 (single_display_spec_string_p): Support property values that are
 lists with the argument STRING its top-level element.
 (display_prop_string_p): Fix the condition for processing a
 property that is a list to be consistent with handle_display_spec.
 src/keyboard.c (adjust_point_for_property): Adjust the call to
 display_prop_intangible_p to its new signature.
 src/dispextern.h (display_prop_intangible_p): Adjust prototype.
src/ChangeLog
src/dispextern.h
src/keyboard.c
src/xdisp.c